/**
 * 文件名    ： BaseServiceImpl.java
 * 版权       : XX科技有限公司。
 * 描述       : <描述>
 * 修改时间：2018年11月14日
 * 修改内容：<修改内容>
 */
package com.example.demo.application.common.base;

import java.io.Serializable;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.example.demo.application.common.MyConstants;
import com.example.demo.application.mapper.dao.IBaseDao;
import com.example.demo.application.model.LoginUserEntity;
import com.example.demo.application.myredis.RedisHelper;

public class BaseServiceImpl<T> implements IBaseService<T, Serializable> {

	@Autowired
	private IBaseDao<T, Serializable> baseDao;

	public IBaseDao<T, Serializable> getBaseDao() {
		return baseDao;
	}

	public void setBaseDao(IBaseDao<T, Serializable> baseDao) {
		this.baseDao = baseDao;
	}

	@Override
	public int insert(T t) throws Exception {
		return baseDao.insert(t);
	}

	@Override
	public T update(T t) throws Exception {
		baseDao.update(t);
		return t;
	}

	@Override
	public T findById(T t) throws Exception {
		return baseDao.findById(t);
	}

	@Override
	public List<T> findByParams(T t) throws Exception {
		return baseDao.findByParams(t);
	}

	/**
	 * <功能> 根据token获取 用户 <详细描述> final 内联函数
	 * 
	 * @param userToken
	 * @return
	 * @throws Exception
	 * @see [类、类#方法、类#成员]
	 */
	public final LoginUserEntity getUserByToken(String userToken) throws Exception {
		return (LoginUserEntity) RedisHelper.getObject(MyConstants.LOGIN_USER, userToken);
	}

	/**
	 * <功能> token、用户放入缓存redis  <详细描述> final 内联函数
	 * 
	 * @param userToken
	 * @return
	 * @throws Exception
	 * @see [类、类#方法、类#成员]
	 */
	public final void setUserAndToken(String userToken, LoginUserEntity user) throws Exception {
		RedisHelper.setObject(MyConstants.LOGIN_USER, userToken, user);
	}
}
